#! /usr/bin/env python3
import pymysql

class Db:

    def __init__(self):
        # 连接数据库
        self.db = pymysql.connect(host='localhost', port=8889, user='root', passwd='root', db='mpyblog', charset='utf8')
        # 使用 cursor() 方法创建一个游标对象 cursor
        self.cursor = self.db.cursor()

    # 创建数据表
    def create(self, sql):
        # 使用 execute() 方法执行 SQL，如果表存在则删除
        self.cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
        
        # 使用预处理sql语句创建表    
        return self.cursor.execute(sql)

    # 查(多条)
    def select(self, sql):
        try:
            # 执行SQL语句
            self.cursor.execute(sql)
            # 获取所有记录列表
            results = self.cursor.fetchall()
            return results
        except:
            return "Error: 无法提取数据"
    
    # 查(单条)
    def selectShow(self, sql):
        try:
            # 执行SQL语句
            self.cursor.execute(sql)
            # 获取所有记录列表
            results = self.cursor.fetchone()
            return results
        except:
            return "Error: 无法提取数据"
    
    # 增
    def install(self, sql):
        try:
            # 执行sql语句
            self.cursor.execute(sql)
            # 提交到数据库执行
            return self.db.commit()
        except:
            # 如果发生错误则回滚
            self.db.rollback()

    # 改
    def update(self, sql):
        try:
            # 执行SQL语句
            self.cursor.execute(sql)
            # 提交到数据库执行
            return self.db.commit()
        except:
            # 发生错误时回滚
            self.db.rollback()
    # 删
    def delete(self, sql):
        try:
            # 执行SQL语句
            self.cursor.execute(sql)
            # 提交修改
            return self.db.commit()
        except:
            # 发生错误时回滚
            self.db.rollback()
        
 
    def __del__(self):
        # 关闭数据库连接
        self.db.close()
        print(111)
 
